package javase.CollectionAndMap.list;

/**
 * 一、数组和集合的区别
 * 数组
 * 1.长度一经定义无法修改
 * 2.存储基本数据类型 int[] ， 存储引用数据类型 User[]
 * 3.通过下标操作 下标范围 0~len-1  语法：数组名[下标]
 * 4.在内存空间中是连续的
 *
 * 集合
 * 1.长度可变
 * 2.Collection<E>   Map<K,V>  根据泛型的数据类型进行存储元素
 *
 * List接口
 * 1.保证存取顺序一致
 * 2.允许存储null值
 * 3.允许重复存放
 *
 * ArrayList实现类
 * 1.基于数组的数据结构，在内存空间是连续的
 * 2.查询快，增删慢
 * 3.线程不安全
 *
 * LinkedList实现类
 * 1.基于链表的数据结构，双向链表，在内存空间是不连续的
 * 2.查询慢，增删块
 * 3.线程不安全
 *
 * Vector实现类
 * 1.它的API方法与ArrayList一样的
 * 2.线程安全，所有方法都是synchronized同步方法
 * 3.效率偏低
 *
 * CopyOnWriteArrayList实现类
 * 1.volatile + ReentrantLock
 * 2.保证多线程操作下，集合的线程安全
 */
public class ListDemo {
}
